Fibre channel (FC) storage area networks (SANs) may be configured to provide a network topology having a plurality of “fabrics.” Fabrics are typically comprised of one or more fibre channel switches that allow endpoint devices (“nodes”) connected to each other to communicate via the switched network. A typical management application for a FC storage area network uses a variety of data sources (commonly referred to as “agents”) that can probe and report on the status of a fabric and the fabric's members. These agents will use varying application programming interfaces (APIs) for communication and have a range of (and possibly overlapping) capabilities both in terms of the switches “visible” to the agent and the type of information provided on these entities. The capabilities of agents and the list of switches visible to an agent also may change over time.
Typically, a set of multiple agents may be required to collect information for each fabric each time that data needs to be collected, because agents can have different capabilities and may be able to report on different subsets of switches in the fabric. Due to overlap and redundancy between agents, using all the agents capable of reporting on some aspect of one or more switches in the fabric is inefficient. This inefficiency is caused by the traffic load created on the fabric and the redundant data collection and subsequent processing overhead.
A more efficient solution is to find a subset of agents that can provide maximal coverage of information (both in terms of switches in the fabric and the capabilities/categories of information that is reported) and then use that set to reduce the management traffic load and subsequent processing. Although some existing techniques are capable of discovering network information from multiple information gathering agents, existing techniques fail to efficiently find a minimal solution for the number of agents required and have shortcomings in responding to failures. What is needed are improved techniques of determining and ranking subsets of agents, as well as improved techniques to use these subsets for gathering information about nodes within a fabric.